package com.station.param.request.TransferOrder;

/**
 * @BelongsProject: newblderp
 * @BelongsPackage: com.station.param.request.TransferOrder
 * @Author: songhui
 * @CreateTime: 2025-11-10  09:07
 * @Description: TODO
 * @Version: 1.0
 */

import lombok.Data;

import java.util.Date;
@Data
public class TransferOrderRequest {
    private String IsDeleteEntry;
    private String SubSystemId;
    private String IsVerifyBaseDataField;
    private String IsEntryBatchFill;
    private String ValidateFlag;
    private String NumberSearch;
    private String IsAutoAdjustField;
    private String InterationFlags;
    private String IgnoreInterationFlag;
    private String IsControlPrecision;
    private String ValidateRepeatJson;
    private Model[] Model;

    @Data
    public static class Model {
        private Long FID;
        private FNumberObj FBillTypeID;
        private Date FDate;
        private FNumberObj FAPPORGID;
        private String FTRANSTYPE;
        private String FOwnerTypeIdHead;
        private String FOwnerTypeInIdHead;
        private String FTransferDirect;
        private String FBillNo;
        private FEntity[] FEntity;
    }

    @Data
    public static class FNumberObj {
        private String FNumber;
        public FNumberObj(String FNumber){
            this.FNumber = FNumber;
        }
    }

    @Data
    public static class FEntity {
        private FNumberObj FMATERIALID;
        private FNumberObj FUNITID;
        private Double FQty;
        private FNumberObj FStockOrgId;
        private FNumberObj FStockId;
        private FNumberObj FStockStatusId;
        private FNumberObj FStockOrgInId;
        private FNumberObj FStockInId;
        private FNumberObj FStockStatusInId;
        private String FOwnerTypeId;
        private FNumberObj FOwnerId;
        private String FOwnerTypeInId;
        private FNumberObj FOwnerInId;
        private FNumberObj FBaseUnitID;
        private Double FExtAuxUnitQty;
        private Double FSecQty;
        private Double FNOTransOutReBaseQty;
        private Double FNOTransOutBaseQty;
        private Double FNOTransInBaseQty;
        private Double FRETransOutReBaseQty;
        private Double FRETransOutBaseQty;
        private Double FRETransInBaseQty;
        private Double FAllTransOutBaseQty;
        private Double FAllTransInBaseQty;
        private Double FNOTransInLoBaseQty;
        private Double FRETransInLoBaseQty;
        private Double FNOTransOutReSecQty;
        private Double FNOTransOutSecQty;
        private Double FNOTransInSecQty;
        private Double FRETransOutReSecQty;
        private Double FRETransOutSecQty;
        private Double FRETransInSecQty;
        private Double FAllTransOutSecQty;
        private Double FAllTransInSecQty;
        private Double FNOTransInLoSecQty;
        private Double FRETransInLoSecQty;
    }
}
